package cn.tannn.tcache.core;

import lombok.Getter;

/**
 * 回复的数据类型 (具体协议解析在 {@link cn.tannn.tcache.resp})
 * @see <a href="https://www.cnblogs.com/throwable/p/11644790.html">Redis服务协议</a>
 * @author <a href="https://t.tannn.cn/">tnnn</a>
 * @version V1.0
 * @date 2024/6/19 下午8:09
 */
@Getter
public enum ReplyType {

    /**
     * 单行字符串
     * <p> 第一个字节是+，最后两个字节是\r\n，其他字节是字符串内容
     */
    SIMPLE_STRING,

    /**
     * 定长字符串
     * <p> 第一个字节是$，紧接着的字节是内容字符串长度\r\n，最后两个字节是\r\n，其他字节是字符串内容
     */
    BULK_STRING,

    /**
     * 整型数字
     * <p> 第一个字节是:，最后两个字节是\r\n，其他字节是数字的文本内容
     */
    INT,

    /**
     * 错误消息
     * <p> 第一个字节是-，最后两个字节是\r\n，其他字节是异常消息的文本内容
     */
    ERROR,

    /**
     * RESP数组
     * <p> 第一个字节是*，紧接着的字节是元素个数\r\n，最后两个字节是\r\n，其他字节是各个元素的内容，每个元素可以是任意一种数据类型
     */
    ARRAY,


}
